function isCycleObj(obj, parent) {
    // 初始化时parentArr为 [obj]
    // 后面每次递归都是将 到目前这一层的所有【对象】 放入
    let parentArr = parent || [obj]
    console.log(obj, parentArr)
    for(let k in obj) {
        if(typeof obj[k] === 'object') {
            let flag = false
            parentArr.forEach(pObj => {
                if(pObj === obj[k]) {
                    flag = true
                }
            })
            if(flag) return true
            flag = isCycleObj(obj[k], [...parentArr, obj[k]])
            if(flag) return true
        }
    }
    return false
}

const tt = {t: {
    e: {
        a: 0
    }
    }}
const pp = {p: tt}
tt.t.e.a = pp

console.log(isCycleObj(tt))